Kernel is a Scheme-like programming language by John N. Shutt in which all objects are first-class.
In the programming language Scheme, and
is a macro, because (and #f (/ 1 0))
must not evaluate the division. This means it cannot be used in higher-order functions; it is second-class. In Kernel, one has $and?
defined by
which is a first-class object — technically, a fexpr — and can thus be used in higher-order functions, such as map
.